Управление центрами затрат и лимитами
BudgetManager
Управление центрами затрат и лимитами.
class yandex_b2b_go.budget.BudgetManager(client: Client)
Атрибуты
-
BudgetLimitManager — для управления лимитами.
limit: BudgetLimitManager
-
BudgetCostCenterManager — для управления центрами затрат.
cost_center: BudgetCostCenterManager
BudgetLimitManager
Менеджер для управления лимитами.
class yandex_b2b_go.budget.BudgetLimitManager(client: Client)
Методы
List
Возвращает список существующих лимитов.
async def list(
service: Optional[Service] = None,
department_id: Optional[str] = None,
limit: Optional[int] = None,
offset: Optional[int] = None,
search: Optional[str] = None,
sorting_order: Optional[SortingOrder] = None,
sorting_field: Optional[str] = None
) -> BudgetLimitListResponse
Параметры
service
— список лимитов по определенному сервису.department_id
— список лимитов по определенному департаменту.limit
— количество выводимых записей. При отсутствии данного параметра возвращается информация о первых 100 записях.offset
— количество пропускаемых записей. При отсутствии данного параметра возвращается информация начиная с первой записи.search
— дополнительный фильтр лимитов (по полному совпадению в полеtitle
).sorting_order
— направление сортировки.sorting_field
— поле, по которому сортировать.
В случае успешного выполнения возвращает класс BudgetLimitListResponse.
Если переданы неверные параметры, возвращает ошибку ValidationError.
Если код ответа не равен 200, возвращает ошибку ApiError.
Пример вызова
import asyncio
from yandex_b2b_go import Client
from yandex_b2b_go import BudgetManager
from yandex_b2b_go import typing, errors
TOKEN = '<ваш токен>'
async def main():
client = Client(token=TOKEN)
budget_manager = BudgetManager(client=client)
try:
limits_list = await budget_manager.limit.list(
service=typing.Service.taxi,
limit=5,
)
...
except errors.ValidationError as e:
return str(e.args)
except errors.ApiError as e:
return e
asyncio.run(main())
Update
Меняет персональный лимит сотрудника.
async def update(
user_id: str,
budget_limit: Union[BudgetLimitTaxiRequest, BudgetLimitEatsRequest, BudgetLimitGroceryRequest,
BudgetLimitTankerRequest, BudgetLimitDriveRequest, BudgetLimitCargoRequest, BudgetLimitTravelRequest]
) -> BudgetLimitUpdateResponse
Параметры
user_id
— идентификатор пользователя (сотрудника).budget_limit
— лимит сотрудника. Один из классов: BudgetLimitTaxiRequest, BudgetLimitEatsRequest, BudgetLimitGroceryRequest, BudgetLimitTankerRequest, BudgetLimitDriveRequest, BudgetLimitCargoRequest, BudgetLimitTravelRequest.
В случае успешного выполнения возвращает класс BudgetLimitUpdateResponse.
Если переданы неверные параметры, возвращает ошибку ValidationError.
Если код ответа не равен 200, возвращает ошибку ApiError.
Пример вызова
import asyncio
from yandex_b2b_go import Client
from yandex_b2b_go import BudgetManager
from yandex_b2b_go import typing, errors
TOKEN = '<ваш токен>'
async def main():
client = Client(token=TOKEN)
budget_manager = BudgetManager(client=client)
try:
budget_limit = typing.BudgetLimitTaxiRequest(
title='Название лимита',
client_id='id клиента',
service=typing.Service.taxi,
categories=['child_tariff', 'cargo', 'business', 'courier', 'express'],
limits=typing.Limits(
orders_cost=typing.Measure(
value=818181,
period=typing.MeasurePeriod.month,
),
orders_amount=typing.Measure(
value=2,
period=typing.MeasurePeriod.day,
)
)
)
response_update = await budget_manager.limit.update(
user_id='f1387…5e179',
budget_limit=budget_limit
)
...
except errors.ValidationError as e:
return str(e.args)
except errors.ApiError as e:
return e
asyncio.run(main())
BudgetCostCenterManager
Управление центрами затрат.
class yandex_b2b_go.budget.BudgetCostCenterManager(client: Client)
Метод
- list — возвращает список существующих центров затрат.
List
Возвращает список существующих центров затрат.
async def list(
limit: Optional[int] = None,
offset: Optional[int] = None
) -> BudgetCostCenterListResponse
Параметры
limit
— количество выводимых записей. При отсутствии данного параметра возвращается информация о первых 100 записях.offset
— количество пропускаемых записей. При отсутствии данного параметра возвращается информация начиная с первой записи.
В случае успешного выполнение возвращает класс BudgetCostCenterListResponse.
Если переданы неверные параметры, возвращает ошибку ValidationError.
Если код ответа не равен 200, возвращает ошибку ApiError.
Пример вызова
import asyncio
from yandex_b2b_go import Client
from yandex_b2b_go import BudgetManager
from yandex_b2b_go import typing, errors
TOKEN = '<ваш токен>'
async def main():
client = Client(token=TOKEN)
budget_manager = BudgetManager(client=client)
try:
cost_centers = await budget_manager.cost_center.list(limit=5, offset=10)
...
except errors.ValidationError as e:
return str(e.args)
except errors.ApiError as e:
return e
asyncio.run(main())